﻿#region Copyright Notice

//Copyright © 2007-2011, PARROT SA, all rights reserved. 

//DISCLAIMER 
//The APIs is provided by PARROT and contributors "AS IS" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability 
//and fitness for a particular purpose are disclaimed. In no event shall PARROT and contributors be liable for any direct, indirect, incidental, special, exemplary, or 
//consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however 
//caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this 
//software, even if advised of the possibility of such damage. 

//Author            : Wilke Jansoone
//Email             : wilke.jansoone@digitude.net
//Publishing date   : 28/11/2010 

//Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions
//are met:
//    - Redistributions of source code must retain the above copyright notice, this list of conditions, the disclaimer and the original author of the source code.
//    - Neither the name of the PixVillage Team, nor the names of its contributors may be used to endorse or promote products derived from this software without 
//      specific prior written permission.

#endregion

#region Imports

using System;
using System.Collections.Generic;

#endregion

namespace Wilke.Interactive.Drone.Control
{
    /// <summary>
    /// Static class containing the AT commands currently supported by the DroneController.
    /// </summary>
    internal static class ATCommands
    {
        /// <summary>
        /// This AT command is used to switch between different camera views.
        /// </summary>
        internal static readonly string SwitchVideoChannel        = "AT*ZAP={0},{1}\r";
        /// <summary>
        /// This AT Command is used for take off/land and emergency reset.
        /// </summary>
        internal static readonly string SetInputValue             = "AT*REF={0},{1}\r";
        /// <summary>
        /// This AT command sets a reference of the horizontal plane for the drone internal control system.
        /// </summary>
        internal static readonly string SetFlatTrim               = "AT*FTRIM={0}\r";
        /// <summary>
        /// This AT Command sets an configurable option on the drone.
        /// </summary>
        internal static readonly string SetConfiguration          = "AT*CONFIG={0},\"{1}\",\"{2}\"\r";
        /// <summary>
        /// This AT Command is used when communicating with the control communication channel.
        /// </summary>
        internal static readonly string SetControlMode            = "AT*CTRL={0},{1},{2}\r";
        /// <summary>
        /// This AT Command makes the ARDrone animate its LED's according to a selectable pattern.
        /// </summary>
        internal static readonly string PlayLedAnimation          = "AT*LED={0},{1},{2},{3}\r";
        /// <summary>
        /// This AT Command is used to provide the ARDrone with piloting instructions.
        /// </summary>
        internal static readonly string SetProgressiveInputValues = "AT*PCMD={0},{1},{2},{3},{4},{5}\r";
        /// <summary>
        /// This AT Command activates/deactivates the detection of coloured patterns.
        /// </summary>
        internal static readonly string SetTagDetection           = "AT*CAD={0},{1},{2}\r";
        /// <summary>
        /// This AT Command resets the internal ARDrone communication system.
        /// </summary>
        internal static readonly string ResetCommunicationHub     = "AT*COMWDG={0}\r";
    }
}
